package com.share.chat.service;

import com.share.chat.domain.ResultInfo;
import com.share.chat.domain.User;

/**
 * @author 谢佳豪
 * @data 2021/7/3 - 18:11
 * @description
 */
public interface UserService {

    /**
     * 用户登录的业务逻辑
     * @param account 用户名、手机号、邮箱
     * @param password 密码
     * @return
     */
    User login(String account, String password);


    /**
     * 更新用户在线状态（用户表、聊天列表）
     * @param username 用户名
     * @param isOnline 状态
     */
    void updateOnlineState(String username, boolean isOnline);


    /**
     * 查询是否有重复的手机号
     * @param telephone
     * @return
     */
    ResultInfo repeatTelephone(String telephone);

    /**
     * 查询是否有重复的用户名
     * @param username
     * @return
     */
    ResultInfo repeatUsername(String username);

    /**
     * 查询是否有重复的邮件
     * @param email
     * @return
     */
    ResultInfo repeatEmail(String email);


    /**
     * 注册用户
     * @param user
     * @return
     */
    ResultInfo registration(User user);
}
